package com.qf.controller;

import com.qf.common.R;
import com.qf.feign.api.GoodsService;
import com.qf.vo.GoodsType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/goodsTypeController")
public class GoodsTypeController {

    @Autowired
    private GoodsService goodsTypeService;

    @GetMapping("/{page}.html")
    public String toPage(@PathVariable String page,
                         Integer id,ModelMap modelMap) {
        modelMap.put("id",id);
        return "goodsType/" + page;
    }

    @GetMapping("/getGoodsTypeTree")
    @ResponseBody
    public R getGoodsTypeTree() {

        // 1.创建一个list，用来储存所有的节点
        List<Map<String, Object>> nodeList = new ArrayList<>();

        // 2.遍历集合
        List<GoodsType> goodsTypeList = goodsTypeService.getGoodsTypeList();
        for (GoodsType goodsType : goodsTypeList) {

            // 3.创建一个Map用来储存节点的信息
            Map<String, Object> node = new HashMap<>();
            node.put("id",goodsType.getId());
            node.put("name",goodsType.getGoodsTypeName());
            node.put("pid",goodsType.getGoodsTypePid());

            // 4.添加到list中
            nodeList.add(node);
        }
        return R.success(nodeList);
    }

    @GetMapping("/getGoodsTypeList")
    public String getGoodsList(ModelMap modelMap) {
        List<GoodsType> goodsTypeList = goodsTypeService.getGoodsTypeList();
        modelMap.put("goodsTypeList", goodsTypeList);
        return "goodsType/goodsTypeList";
    }

    @PostMapping("/updateGoodsType")
    @ResponseBody
    public R updateGoodsType(GoodsType goodsType){
        return R.write(goodsTypeService.updateGoodsType(goodsType));
    }

    @GetMapping("/deleteGoodsTypeById/{id}")
    @ResponseBody
    public R deleteGoodsTypeById(@PathVariable Integer id){
        return R.write(goodsTypeService.deleteGoodsTypeById(id));
    }

    @PostMapping("/addGoodsType")
    @ResponseBody
    public R addGoodsType(GoodsType goodsType){
        return R.write(goodsTypeService.addGoodsType(goodsType));
    }


    @GetMapping("/getGoodsTypeListByPid/{id}")
    @ResponseBody
    public List<GoodsType> getGoodsTypeListByPid(@PathVariable Integer id){
        return goodsTypeService.getGoodsTypeListByPid(id);
    }
}
